Preparando o Ambiente de Desenvolvimento

Introdução

Os computadores não compreendem diretamente as linguagens de programação; elas precisam ser convertidas para a linguagem de máquina, composta apenas por 0s e 1s (binário), que é a única linguagem que o computador entende. Dependendo da linguagem de programação, essa conversão pode ser feita por meio de compilação ou interpretação.

Linguagens de programação compiladas traduzem o código-fonte para código de máquina antes da execução do programa. Um compilador realiza essa conversão, gerando instruções diretamente compreensíveis pela arquitetura da máquina alvo. Isso resulta em uma execução mais eficiente e rápida, pois as instruções já foram processadas e otimizadas antes da execução.

Por outro lado, linguagens de programação interpretadas traduzem o código-fonte para código de máquina durante a execução. Um interpretador analisa o código linha por linha, tornando o processo mais lento em comparação com a compilação. No entanto, a interpretação oferece maior portabilidade, permitindo a execução do mesmo código-fonte em diferentes sistemas operacionais e arquiteturas, desde que haja um interpretador disponível.

diferença entre compilador e interpretador

Algumas linguagens, como Python e JavaScript (JS), usam uma abordagem intermediária. O código-fonte é compilado para bytecode, uma representação binária das instruções que uma máquina virtual específica pode entender. Em seguida, a máquina virtual executa o bytecode, proporcionando portabilidade e eficiência sem a necessidade de interpretar o código linha por linha.

arquivo de texto para arquivo de bytecode

O bytecode permite a aplicação da técnica de compilação Just-In-Time (JIT), que ocorre durante a execução do bytecode. Um compilador JIT traduz partes do código em código de máquina otimizado para a arquitetura específica do computador, melhorando significativamente o desempenho. Esse código de máquina é armazenado em cache para reutilização em futuras execuções do mesmo trecho de código, evitando a necessidade de recompilação repetitiva.

A compilação JIT também permite que a linguagem de programação forneça uma combinação de portabilidade e eficiência, pois o mesmo código-fonte pode ser executado em diferentes plataformas, mas o compilador JIT pode gerar código de máquina otimizado para cada plataforma específica.

A Linguagem de Programação JavaScript

Para este curso, utilizaremos a linguagem de programação JavaScript. JavaScript é amplamente popular por sua flexibilidade e diversidade de aplicações, como desenvolvimento de websites, aplicativos móveis e desktop. É executado tanto do lado do cliente (navegadores) quanto do lado do servidor (Node.js), o que o torna uma ferramenta poderosa para desenvolvimento de software moderno.

Executando JavaScript via Navegador Web

As páginas web utilizam HTML, CSS e JavaScript. Navegadores modernos já vêm com um interpretador de JavaScript embutido. Para executar códigos JavaScript, acesse as Ferramentas do Desenvolvedor do seu navegador (na maioria dos navegadores, use a tecla F12) e abra a aba "Console". Esta aba é um terminal interativo para inserir e executar comandos JavaScript.

Exemplo HTML + JavaScript

Podemos criar uma página web simples com código HTML e Javascript e abri-la no navegador para ver o código executando:

<input type="number" placeholder="Digite um número">
<input type="number" placeholder="Digite outro número">
<button onclick="somar()">Somar!</button>
<p></p>
<script>
    function somar() {
        document.querySelector("p").textContent =
            Number(document.querySelectorAll("input")[0].value) +
            Number(document.querySelectorAll("input")[1].value)
    }
</script>

Instalando e Configurando o Ambiente de Desenvolvimento JavaScript

Instalando

Para desenvolver em JavaScript, vamos utilizar os seguintes programas:

Se você estiver no Windows, utilizaremos ainda:

Observação: Para instalar esses programas, você precisará de privilégios administrativos.

Para instalar os programas, siga as instruções da seção correspondente ao teu sistema operacional:

Linux

Por fazer

Windows

Siga uma das seguintes alternativas:

  • Alternativa 1 (fácil)
  • Execute o seguinte comando no terminal como administrador:

    Set-ExecutionPolicy RemoteSigned -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/pedrosiqueira/ifmsjs/refs/heads/main/scripts/01_windows_setup.ps1'))

    Esse comando executa o script de instalação dos programas para desenvolvimento de Javascript. Se você ficou curioso, pode clicar nesse link e ver o que o script faz.

  • Alternativa 2 (difícil)
  • Instale o Windows Subsystem for Linux (WSL) seguindo as instruções disponíveis aqui. Depois, siga o tutorial de instalação do NodeJS para Windows disponível aqui.

    Configurando

    Após a instalação dos programas, vamos configurá-los para otimizar nosso ambiente de desenvolvimento.

    Para o git, vamos definir um nome de usuário e email para salvar "snapshots" do progresso do projeto. Recomendamos criar uma conta no GitHub, onde nosso projeto será hospedado, e usá-la para configurar o git.

    Para o vscode, vamos instalar as seguintes extensões para nos auxiliar no desenvolvimento do projeto:

    Além disso, vamos trocar o npm pelo pnpm, uma alternativa mais rápida e leve ao npm.

    Para facilitar o processo de configuração, execute um dos seguintes scripts, conforme teu sistema operacional:

    Linux

    Por fazer

    Windows

    Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/pedrosiqueira/ifmsjs/refs/heads/main/scripts/02_alg_project_setup.ps1'))

    Esse script também baixa o esqueleto inicial do nosso projeto do GitHub e o abre no vscode.

    Agora estamos prontos para começar!